package com.h2cloud.service.impl;

import com.h2cloud.dao.BlogDao;
import com.h2cloud.entity.Blog;
import com.h2cloud.service.BlogService;
import com.h2cloud.service.ResultService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

/**
 * (Blog)表服务实现类
 *
 * @author makejava
 * @since 2020-09-23 17:56:48
 */
@Service("blogService")
public class BlogServiceImpl implements BlogService {
    @Resource
    private BlogDao dao;

    @Autowired
    private ResultService resultService;

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    @Override
    public Blog queryById(Integer id) {
        return this.dao.queryById(id);
    }

    /**
     * 查询所有
     *
     * @return
     */
    @Override
    public List<Blog> selectAll() {
        return dao.selectAll();
    }

    /**
     * 判断 blog是否属于该用户
     *
     * @param id
     * @param userid
     * @return
     */
    @Override
    public Blog thisUserHasBlog(int id, int userid) {
        System.out.println("serviceImpl: " + id + "  " + userid);
        return dao.thisUserHasBlog(id, userid);
    }

    /**
     * 通过实体作为筛选条件查询 获取用户的文章与草稿
     *
     * @param blog 实例对象
     * @return 对象列表
     */
    @Override
    public List<Blog> queryAll(Blog blog) {
        return dao.queryAll(blog);
    }

    /**
     * 新增数据
     *
     * @param blog 实例对象
     * @return 实例对象
     */
    @Override
    public Blog insert(Blog blog) {
        this.dao.insert(blog);
        return blog;
    }

    /**
     * 修改数据
     *
     * @param blog 实例对象
     * @return 实例对象
     */
    @Override
    public Blog update(Blog blog) {
        this.dao.update(blog);
        return this.queryById(blog.getId());
    }

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    @Override
    public boolean deleteById(Integer id) {
        return this.dao.deleteById(id) > 0;
    }

    @Override
    public void testFun1() {
        resultService.testFun3();
        System.out.println("BlogServiceImpl testFun1");
    }

    @Override
    public void testFun2() {
        this.testFun1();
        System.out.println("BlogServiceImpl testFun1");
    }
}